package com.wzy.lombok;

import java.util.List;

import lombok.Builder;
import lombok.Data;
import lombok.Singular;

@Builder
@Data
public class BuildDemo
{
	/**
	 * 使用build模式创建的对象一经创建就不可更改，应遵循这样的原则
	 */

	private static String staticField;

	//final
	private final String finalField;

	// inited final
	private final String initedFinalFiled = "inited";

	// 默认的值如果没有手动赋值，那么build方式会使默认值会失效
	private String normalField;

	// 如果给集合属性增加了singular注解，那么build的时候可以已单个的形式赋值
	@Singular // 必须使用复数命名
	private List<String> listFields;

	public static void main(String[] args)
	{
		BuildDemo buildDemo = BuildDemo.builder()
				.finalField("aaa")
				.normalField("bbb")
				.listField("单个参数给list赋值")
				.listField("单个参数给list赋值")
				.build();
		System.out.println(buildDemo);
	}
}
